codecparser_sources = files([
  'gstjpeg2000sampling.c',
  'gstjpegparser.c',
  'gstmpegvideoparser.c',
  'gsth264parser.c',
  'gstvc1parser.c',
  'gstmpeg4parser.c',
  'gsth265parser.c',
  'gstvp8parser.c',
  'gstvp8rangedecoder.c',
  'gstvp9parser.c',
  'vp9utils.c',
  'parserutils.c',
  'nalutils.c',
  'dboolhuff.c',
  'vp8utils.c',
  'gstmpegvideometa.c',
  'gstav1parser.c',
  'gsth266parser.c',
  'gsth264bitwriter.c',
  'gsth265bitwriter.c',
  'gstav1bitwriter.c',
  'gstvp9bitwriter.c',
  'gstjpegbitwriter.c',
  'gstlcevcmeta.c',
])
codecparser_headers = files([
  'codecparsers-prelude.h',
  'gstmpegvideoparser.h',
  'gsth264parser.h',
  'gstvc1parser.h',
  'gstmpeg4parser.h',
  'gsth265parser.h',
  'gstvp8parser.h',
  'gstvp8rangedecoder.h',
  'gstjpeg2000sampling.h',
  'gstjpegparser.h',
  'gstmpegvideometa.h',
  'gstvp9parser.h',
  'gstav1parser.h',
  'gstlcevcmeta.h',
  'gsth266parser.h',
])
install_headers(codecparser_headers, subdir : 'gstreamer-1.0/gst/codecparsers')

doc_sources = []
foreach s: codecparser_sources + codecparser_headers
  doc_sources += s.full_path()
endforeach

libs_c_sources += {
  'codecparsers': pathsep.join(doc_sources)
}

cp_args = [
  '-DGST_USE_UNSTABLE_API',
  '-DBUILDING_GST_CODEC_PARSERS',
  '-DG_LOG_DOMAIN="GStreamer-CodecParsers"',
  '-Dvp8_norm=gst_codecparsers_vp8_norm',
  '-Dvp8dx_start_decode=gst_codecparsers_vp8dx_start_decode',
  '-Dvp8dx_bool_decoder_fill=gst_codecparsers_vp8dx_bool_decoder_fill',
]

gstcodecparsers = library('gstcodecparsers-' + api_version,
  codecparser_sources,
  c_args : gst_plugins_bad_args + cp_args,
  include_directories : [configinc, libsinc],
  version : libversion,
  soversion : soversion,
  darwin_versions : osxversion,
  install : true,
  dependencies : [gstbase_dep],
)

pkg_name = 'gstreamer-codecparsers-1.0'
pkgconfig.generate(gstcodecparsers,
  libraries : [gst_dep, gstbase_dep],
  variables : pkgconfig_variables,
  subdirs : pkgconfig_subdirs,
  name : pkg_name,
  description : 'Bitstream parsers for GStreamer elements',
)

gstcodecparsers_dep = declare_dependency(link_with : gstcodecparsers,
  include_directories : [libsinc],
  dependencies : [gstbase_dep])

gst_libraries += [[pkg_name, {'lib': gstcodecparsers}]]
meson.override_dependency(pkg_name, gstcodecparsers_dep)
